How to solve Sudoku using backtracking